#pragma once
#include "vtkkwrenderwidget.h"
#include "EndoscopeLogic.h"
class vtkImageMapper;
class vtkActor2D;
class vtkImageData;
class vtkUnsignedCharArray;
class vtkEndoscopeRenderWidget :
	public vtkKWRenderWidget
{
public:
	static vtkEndoscopeRenderWidget * New();
	vtkTypeRevisionMacro(vtkEndoscopeRenderWidget, vtkKWRenderWidget);
	void Animation();
	vtkSetObjectMacro(ESLogic, EndoscopeLogic);
	vtkSetMacro(IsAnimation, bool);
	vtkGetObjectMacro(ImageData, vtkImageData);
protected:
	vtkImageMapper *ImageMapper;
	EndoscopeLogic * ESLogic;
	vtkActor2D *Actor2D;
	vtkImageData * ImageData;
	vtkUnsignedCharArray * Pixels;
	bool IsAnimation;
	vtkEndoscopeRenderWidget(void);
	vtkEndoscopeRenderWidget(const vtkEndoscopeRenderWidget &);
	void operator = (const vtkEndoscopeRenderWidget &);
public:
	virtual ~vtkEndoscopeRenderWidget(void);
public:
	void InitialPipeline(void);
};

ClientData EndoscopeRenderWidgetNewCommand();
int  EndoscopeRenderWidgetCommand(ClientData cd, Tcl_Interp *interp,
												   int argc, char *argv[]);